package com.example.teaching_server.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 活动基地数据传输对象
 *
 * @author Teaching Server
 * @since 1.0.0
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "活动基地信息")
public class ActivityBaseDTO {

    @NotNull(message = "基地ID不能为空")
    @Schema(description = "基地唯一标识", example = "1")
    private Long id;

    @NotBlank(message = "基地名称不能为空")
    @Size(max = 100, message = "基地名称长度不能超过100个字符")
    @Schema(description = "基地名称", example = "北京科技教育基地")
    private String name;

    @Size(max = 500, message = "基地描述长度不能超过500个字符")
    @Schema(description = "基地详细描述", example = "专注于科技教育的现代化基地")
    private String description;

    @NotBlank(message = "基地地址不能为空")
    @Size(max = 200, message = "基地地址长度不能超过200个字符")
    @Schema(description = "基地详细地址", example = "北京市海淀区中关村大街1号")
    private String address;
}
